package com.cskaoyan.javase.method._2exercise;

/**
 * 计算器类,可以完成以下计算:
 *  加，减，乘，除
 *  求平方
 *  求a的n次方
 *  ...
 *
 * @since 16:31
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Calculator {
    public static void main(String[] args) {
        System.out.println(add(10, 10));
        System.out.println(multiply(10, 20));
        System.out.println(divide(10, 3));
        System.out.println(power(2, 10));
    }

    // 加
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 减
    public static int subtract(int num1, int num2) {
        return num1 - num2;
    }

    // 乘
    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }

    // 除
    public static double divide(int num1, int num2) {
        if (num2 == 0) {
            System.out.println("除数不能为0!");
            // return null;
        }
        return num1 / (num2 * 1.0);
    }

    // 求平方
    public static int square(int num) {
        return num * num;
    }

    // 求a的n次方
    public static long power(int a, int n) {
        /*
            求幂运算,可以考虑两种方式:
                1.自己手写,用循环实现a的n次方
                2.使用Math.pow(double,double)方法,返回值类型也是double
         */
        // 做一次强转,去掉".0"取整,因为这里肯定不存在小数
        return (long) Math.pow(a, n);
    }

}
